package com.css.fxfzypg.modules.baseData.service.impl;

import com.alibaba.fastjson.JSONObject;
import com.css.fxfzypg.constants.YNEnum;
import com.css.fxfzypg.modules.baseData.repository.GasstationDataRepository;
import com.css.fxfzypg.modules.baseData.entity.GasstationData;
import com.css.fxfzypg.modules.baseData.service.GasstationDataService;
import com.css.fxfzypg.modules.baseData.queryParams.GasstationDataQueryParams;
import com.css.fxfzypg.util.FileUtil;
import com.css.fxfzypg.util.PlatformDateUtils;
import com.css.fxfzypg.util.PlatformPageUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.Resource;
import java.io.IOException;
import java.sql.Timestamp;
import java.util.List;

@Service
public class GasstationDataServiceImpl implements GasstationDataService {
    @Resource
    GasstationDataRepository gasstationDataRepository;

//    @Override
//    public GasstationDataVO updateGasstationData(GasstationDataVO gasstationDataVO) {
//
//        GasstationDataVO elevationVO1 = gasstationDataRepository.updateGasstationData(gasstationDataVO);
//
//        return elevationVO1;
//    }

    @Override
    @Transactional
    public GasstationData saveGasstationData(GasstationData gasstationData) {

        gasstationData.setGsStatus(YNEnum.Y.toString());
        gasstationData.setGsCreatetime(PlatformDateUtils.getCurrentTimestamp());
        return gasstationDataRepository.saveGasstationData(gasstationData);
    }

    @Override
    public JSONObject getAllGasstationData(GasstationDataQueryParams queryParams) {
        return PlatformPageUtils.formatPageData(gasstationDataRepository.getAllGasstationDataParams(queryParams));
    }

    @Override
    public GasstationData getGasstationDataById(Integer id) {
        GasstationData gasstationData = gasstationDataRepository.getGasstationDataById(id);
        return gasstationData;
    }

    @Override
    @Transactional(rollbackFor = Exception.class)
    public void deleteGasstationDatas(List<Integer> ids) {
        Timestamp currentTimestamp = PlatformDateUtils.getCurrentTimestamp();
        gasstationDataRepository.deleteGasstationDatasById(ids,currentTimestamp);
    }

    @Override
    public List<GasstationData> getAll() {
        return gasstationDataRepository.getAll();
    }

    @Override
    @Transactional(rollbackFor = Exception.class)
    public void importExcel(MultipartFile file) throws IOException {
        List<GasstationData> gasstationData = FileUtil.importExcel(file, GasstationData.class);

        for(int i = 0 ; i<gasstationData.size();i++){
            gasstationData.get(i).setGsCreatetime(PlatformDateUtils.getCurrentTimestamp());
            gasstationData.get(i).setGsStatus(YNEnum.Y.toString());

        }
        gasstationDataRepository.importExcel(gasstationData);
    }

    @Override
    public List<GasstationData> getGassData(String taskId) {
        List<GasstationData> list=gasstationDataRepository.getGassData(taskId);
        return list;
    }
}
